﻿using System;

namespace H.Logs
{
    /// <summary>
    /// 日志收集器接口
    /// </summary>
    public interface ILogCollector : IDisposable
    {
        /// <summary>
        /// 注册一个日志监听器(ILogListener可以根据自己的需要实现后注册进来,也可以选用本接口提供的日志监听器)
        /// </summary>
        /// <param name="listener">要注册的日志监听器</param>
        void AddListener(ILogListener listener);

        /// <summary>
        /// 移除一个日志监听器
        /// </summary>
        /// <param name="listener">要解除注册的日志监听器</param>
        void RemoveListener(ILogListener listener);

        /// <summary>
        /// 清空所有日志监听器
        /// </summary>
        void ClearListener();

        /// <summary>
        /// 获取日志实例
        /// </summary>
        ///<param name="sourceName">日志的所属的功能模块,建议长度不要超过10个半角字符</param>
        /// <returns>返回一个日志实例</returns>
        ILog GetInstance(string sourceName);

    }
}
